home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 June: ROMin Holiday / ADC Developer CD (1992-06) (''ROMin Holiday'')_iso / Developer Connection - 06-1992.iso / Developer Essentials / MPW Interfaces & Libraries / CIncludes / OSUtils.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-01-29  |  6.5 KB  |  263 lines  |  [TEXT/MPS ]

  1.  
  2. /************************************************************
  3.  
  4. Created: Friday, September 13, 1991 at 1:05 PM
  5.  OSUtils.h
  6.  C Interface to the Macintosh Libraries
  7.  
  8.  
  9.   Copyright Apple Computer, Inc. 1985-1991
  10.   All rights reserved
  11.  
  12. ************************************************************/
  13.  
  14.  
  15. #ifndef __OSUTILS__
  16. #define __OSUTILS__
  17.  
  18. #ifndef __TYPES__
  19. #include <Types.h>
  20. #endif
  21.  
  22.  
  23. enum {
  24.  
  25.  useFree = 0,
  26.  useATalk = 1,
  27.  useAsync = 2,
  28.  useExtClk = 3,            /*Externally clocked*/
  29.  useMIDI = 4,
  30.  
  31. /**** Environs Equates ****/
  32.  curSysEnvVers = 2,        /*Updated to equal latest SysEnvirons version*/
  33.  
  34. /* Machine Types */
  35.  envMac = -1,
  36.  envXL = -2,
  37.  envMachUnknown = 0,
  38.  env512KE = 1,
  39.  envMacPlus = 2,
  40.  envSE = 3,
  41.  envMacII = 4,
  42.  envMacIIx = 5,
  43.  envMacIIcx = 6,
  44.  envSE30 = 7,
  45.  envPortable = 8,
  46.  envMacIIci = 9,
  47.  envMacIIfx = 11,
  48.  
  49. /* CPU types */
  50.  envCPUUnknown = 0
  51. };
  52. enum {
  53.  env68000 = 1,
  54.  env68010 = 2,
  55.  env68020 = 3,
  56.  env68030 = 4,
  57.  env68040 = 5,
  58.  
  59. /* Keyboard types */
  60.  envUnknownKbd = 0,
  61.  envMacKbd = 1,
  62.  envMacAndPad = 2,
  63.  envMacPlusKbd = 3,
  64.  envAExtendKbd = 4,
  65.  envStandADBKbd = 5,
  66.  envPrtblADBKbd = 6,
  67.  envPrtblISOKbd = 7,
  68.  envStdISOADBKbd = 8,
  69.  envExtISOADBKbd = 9,
  70.  false32b = 0,            /*24 bit addressing error*/
  71.  true32b = 1,            /*32 bit addressing error*/
  72.  
  73. /* result types for RelString Call */
  74.  sortsBefore = -1,        /*first string < second string*/
  75.  sortsEqual = 0,        /*first string = second string*/
  76.  sortsAfter = 1            /*first string > second string*/
  77. };
  78.  
  79.  
  80. enum {dummyType,vType,ioQType,drvQType,evType,fsQType,sIQType,dtQType};
  81. typedef unsigned short QTypes;
  82.  
  83. enum {OSTrap,ToolTrap};
  84. typedef unsigned char TrapType;
  85.  
  86.  
  87. struct SysParmType {
  88.  char valid;
  89.  char aTalkA;
  90.  char aTalkB;
  91.  char config;
  92.  short portA;
  93.  short portB;
  94.  long alarm;
  95.  short font;
  96.  short kbdPrint;
  97.  short volClik;
  98.  short misc;
  99. };
  100.  
  101. typedef struct SysParmType SysParmType;
  102. typedef SysParmType *SysPPtr;
  103.  
  104. struct QElem {
  105.  struct QElem *qLink;
  106.  short qType;
  107.  short qData[1];
  108. };
  109.  
  110. typedef struct QElem QElem;
  111. typedef QElem *QElemPtr;
  112.  
  113. struct QHdr {
  114.  short qFlags;
  115.  QElemPtr qHead;
  116.  QElemPtr qTail;
  117. };
  118.  
  119. typedef struct QHdr QHdr;
  120. typedef QHdr *QHdrPtr;
  121.  
  122. struct DateTimeRec {
  123.  short year;
  124.  short month;
  125.  short day;
  126.  short hour;
  127.  short minute;
  128.  short second;
  129.  short dayOfWeek;
  130. };
  131.  
  132. typedef struct DateTimeRec DateTimeRec;
  133.  
  134. struct SysEnvRec {
  135.  short environsVersion;
  136.  short machineType;
  137.  short systemVersion;
  138.  short processor;
  139.  Boolean hasFPU;
  140.  Boolean hasColorQD;
  141.  short keyBoardType;
  142.  short atDrvrVersNum;
  143.  short sysVRefNum;
  144. };
  145.  
  146. typedef struct SysEnvRec SysEnvRec;
  147.  
  148.  
  149. #ifdef __cplusplus
  150. extern "C" {
  151. #endif
  152. #define GetSysPPtr() ((SysPPtr) 0x01F8)
  153. pascal void SysBeep(short duration)
  154.  = 0xA9C8; 
  155. pascal long KeyTrans(const void *transData,short keycode,long *state)
  156.  = 0xA9C3; 
  157. #pragma parameter __D0 DTInstall(__A0)
  158. pascal OSErr DTInstall(QElemPtr dtTaskPtr)
  159.  = 0xA082; 
  160. #define GetMMUMode() (* (char*) 0x0CB2)
  161. #pragma parameter SwapMMUMode(__A0)
  162. pascal void SwapMMUMode(char *mode)
  163.  = {0x1010,0xA05D,0x1080}; 
  164. #if SystemSixOrLater
  165. #pragma parameter __D0 SysEnvirons(__D0,__A0)
  166. pascal OSErr SysEnvirons(short versionRequested,SysEnvRec *theWorld)
  167.  = 0xA090; 
  168. #else
  169. pascal OSErr SysEnvirons(short versionRequested,SysEnvRec *theWorld);
  170. #endif
  171. #pragma parameter __D0 ReadDateTime(__A0)
  172. pascal OSErr ReadDateTime(unsigned long *time)
  173.  = 0xA039; 
  174. #pragma parameter GetDateTime(__A0)
  175. pascal void GetDateTime(unsigned long *secs)
  176.  = {0x20B8,0x020C}; 
  177. #pragma parameter __D0 SetDateTime(__D0)
  178. pascal OSErr SetDateTime(unsigned long time)
  179.  = 0xA03A; 
  180. #pragma parameter SetTime(__A0)
  181. pascal void SetTime(const DateTimeRec *d)
  182.  = {0xA9C7,0xA03A}; 
  183. #pragma parameter GetTime(__A0)
  184. pascal void GetTime(DateTimeRec *d)
  185.  = {0x2038,0x020C,0xA9C6}; 
  186. pascal void Date2Secs(const DateTimeRec *d,unsigned long *secs); 
  187. #pragma parameter Secs2Date(__D0,__A0)
  188. pascal void Secs2Date(unsigned long secs,DateTimeRec *d)
  189.  = 0xA9C6; 
  190. #pragma parameter Delay(__A0,__A1)
  191. pascal void Delay(long numTicks,long *finalTicks)
  192.  = {0xA03B,0x2280}; 
  193. #pragma parameter __A0 GetTrapAddress(__D0)
  194. pascal long GetTrapAddress(short trapNum)
  195.  = 0xA146; 
  196. #pragma parameter SetTrapAddress(__A0,__D0)
  197. pascal void SetTrapAddress(long trapAddr,short trapNum)
  198.  = 0xA047; 
  199. pascal long NGetTrapAddress(short trapNum,TrapType tTyp); 
  200. pascal void NSetTrapAddress(long trapAddr,short trapNum,TrapType tTyp); 
  201. #pragma parameter __A0 GetOSTrapAddress(__D0)
  202. pascal long GetOSTrapAddress(short trapNum)
  203.  = 0xA346; 
  204. #pragma parameter SetOSTrapAddress(__A0,__D0)
  205. pascal void SetOSTrapAddress(long trapAddr,short trapNum)
  206.  = 0xA247; 
  207. #pragma parameter __A0 GetToolTrapAddress(__D0)
  208. pascal long GetToolTrapAddress(short trapNum)
  209.  = 0xA746; 
  210. #pragma parameter SetToolTrapAddress(__A0,__D0)
  211. pascal void SetToolTrapAddress(long trapAddr,short trapNum)
  212.  = 0xA647; 
  213. #pragma parameter __A0 GetToolboxTrapAddress(__D0)
  214. pascal long GetToolboxTrapAddress(short trapNum)
  215.  = 0xA746; 
  216. #pragma parameter SetToolboxTrapAddress(__A0,__D0)
  217. pascal void SetToolboxTrapAddress(long trapAddr,short trapNum)
  218.  = 0xA647; 
  219. pascal OSErr WriteParam(void); 
  220. pascal Boolean EqualString(ConstStr255Param str1,ConstStr255Param str2,
  221.  Boolean caseSens,Boolean diacSens); 
  222. Boolean equalstring(char *str1,char *str2,Boolean caseSens,Boolean diacSens); 
  223. pascal void UprString(Str255 theString,Boolean diacSens); 
  224. void uprstring(char *theString,Boolean diacSens); 
  225. #pragma parameter Enqueue(__A0,__A1)
  226. pascal void Enqueue(QElemPtr qElement,QHdrPtr qHeader)
  227.  = 0xA96F; 
  228. #pragma parameter __D0 Dequeue(__A0,__A1)
  229. pascal OSErr Dequeue(QElemPtr qElement,QHdrPtr qHeader)
  230.  = 0xA96E; 
  231. long SetCurrentA5(void)
  232.  = {0x200D,0x2A78,0x0904}; 
  233. #pragma parameter __D0 SetA5(__D0)
  234. long SetA5(long newA5)
  235.  = 0xC18D; 
  236. pascal void Environs(short *rom,short *machine); 
  237. pascal short RelString(ConstStr255Param str1,ConstStr255Param str2,Boolean caseSens,
  238.  Boolean diacSens); 
  239. short relstring(char *str1,char *str2,Boolean caseSens,Boolean diacSens); 
  240. pascal OSErr HandToHand(Handle *theHndl); 
  241. #pragma parameter __D0 PtrToXHand(__A0,__A1,__D0)
  242. pascal OSErr PtrToXHand(const void *srcPtr,Handle dstHndl,long size)
  243.  = 0xA9E2; 
  244. pascal OSErr PtrToHand(const void *srcPtr,Handle *dstHndl,long size); 
  245. #pragma parameter __D0 HandAndHand(__A0,__A1)
  246. pascal OSErr HandAndHand(Handle hand1,Handle hand2)
  247.  = 0xA9E4; 
  248. #pragma parameter __D0 PtrAndHand(__A0,__A1,__D0)
  249. pascal OSErr PtrAndHand(const void *ptr1,Handle hand2,long size)
  250.  = 0xA9EF; 
  251. #pragma parameter __D0 InitUtil
  252. pascal OSErr InitUtil(void)
  253.  = 0xA03F; 
  254. pascal Boolean SwapInstructionCache(Boolean cacheEnable); 
  255. pascal void FlushInstructionCache(void); 
  256. pascal Boolean SwapDataCache(Boolean cacheEnable); 
  257. pascal void FlushDataCache(void); 
  258. #ifdef __cplusplus
  259. }
  260. #endif
  261.  
  262. #endif
  263.